package com.sojson.config.task.bean;

/**
 * 线程装饰器,类似切面<br/>
 * 主线程              需要<br/>
 * 多线程(@Async)      需要<br/>
 * 定时任务(Job)        需要<br/>
 * 定时任务(@Scheduled) 不需要
 *
 * @author liu
 * @date 2022-01-18
 */
public interface TdHandler<T> extends Comparable<TdHandler<?>> {

    default T prefix() {
        return null;
    }

    default void run() {}

    default void runByThread(Object obj) {}

    default void runByTask() {}

    void finallys();

    int getSort();

    @Override
    default int compareTo(TdHandler<?> o) {
        return getSort() - o.getSort();
    }

}